package com.ruoyi.warehouse.mapper;

import com.ruoyi.warehouse.domain.CkWarehouse;
import com.ruoyi.warehouse.domain.LlrkIncomingMaterialStorage;
import com.ruoyi.warehouse.domain.LlslIncomingMaterials;
import com.ruoyi.warehouse.domain.WldaMaterialFile;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 来料入库Mapper接口
 * 
 * @author ruoyi
 * @date 2024-06-19
 */
@Mapper
public interface LlrkIncomingMaterialStorageMapper 
{
    /**
     * 查询来料入库
     * 
     * @param llCode 来料入库主键
     * @return 来料入库
     */
    public LlrkIncomingMaterialStorage selectLlrkIncomingMaterialStorageByLlCode(String llCode);

    /**
     * 查询来料入库列表
     * 
     * @param llrkIncomingMaterialStorage 来料入库
     * @return 来料入库集合
     */
    public List<LlrkIncomingMaterialStorage> selectLlrkIncomingMaterialStorageList(LlrkIncomingMaterialStorage llrkIncomingMaterialStorage);


    /**
     * 新增来料入库
     * 
     * @param llrkIncomingMaterialStorage 来料入库
     * @return 结果
     */
    public int insertLlrkIncomingMaterialStorage(LlrkIncomingMaterialStorage llrkIncomingMaterialStorage);

    /**
     * 新增来料数量
     *
     * @param list 来料入库
     * @return 结果
     */
    public int insertLlslIncomingMaterialsStorage(List<LlslIncomingMaterials> list);

    /**
     * 修改来料入库
     *
     * @param llrkIncomingMaterialStorage 来料入库
     * @return 结果
     */
    public int updateLlrkIncomingMaterialStorage(LlrkIncomingMaterialStorage llrkIncomingMaterialStorage);

    //审核
    /**
     * 添加库存数
     * */
    public int insertCkxqStorage(LlrkIncomingMaterialStorage llrkIncomingMaterialStorage);
    /**
     * 修改来料入库状态为已审核
     *
     * @param llCode 来料入库审核
     * @return 结果
     */
    public int updateLlrkIsUseStorage(String llCode);

    //撤销
    /** 减少库存数 */
    public int updateCkxqStorage(LlslIncomingMaterials llsl);
    /**
     * 修改来料入库状态为未审核
     *
     * @param llCode 来料入库撤销
     * @return 结果
     */
    public int updateLlrkIsUseCancel(String llCode);

    /**
     * 删除来料数量
     *
     * @param llCode 来料入库
     * @return 结果
     */
    public int deleteLlslStorage(String llCode);

    /**
     * 删除来料入库
     * 
     * @param llCode 来料入库主键
     * @return 结果
     */
    public int deleteLlrkIncomingMaterialStorageByLlCode(String llCode);

    /**
     * 批量删除来料入库
     * 
     * @param llCodes 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLlrkIncomingMaterialStorageByLlCodes(String[] llCodes);

    /**
     * 查询物料档案
     *
     * @param wldaMaterialFile 需要删除的数据主键集合
     * @return 结果
     */
    public List<WldaMaterialFile> selectWldaMaterialFile(WldaMaterialFile wldaMaterialFile);

    /**
     * 查询仓库信息
     *
     * @param ckWarehouse 需要删除的数据主键集合
     * @return 结果
     */
    public List<CkWarehouse> selectCkWarehouse(CkWarehouse ckWarehouse);
}
